home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 7: Sunsite / Linux Cubed Series 7 - Sunsite Vol 1.iso / system / news / readers / nn-tk.001 / nn-tk~ / nn / inst.sh < prev    next >
Text File  |  1996-03-11  |  5KB  |  351 lines

  1.  
  2. # (Large) prefix inserted above by Make
  3.  
  4. PATH="$PATH:/etc:/usr/sbin"
  5.  
  6. case "$1" in
  7. mkdir)
  8.     if [ -n "$2" -a ! -d "$2"/. ]
  9.     then
  10.         mkdir $2
  11.         if [ ! -d "$2" ] ; then
  12.             echo "Cannot create directory $2"
  13.             exit 1
  14.         fi
  15.         chmod $3 $2
  16.         echo Created directory $2
  17.     fi
  18.     exit 0
  19.     ;;
  20. copy)
  21.     cp $4 $3
  22.     chmod $2 $3/$4
  23.     echo "$4 -> $3/$4"
  24.     exit 0
  25.     ;;
  26. chmod)
  27.     chmod $2 $3
  28.     exit 0
  29.     ;;
  30.  
  31. inews)
  32.     if [ ! -f ./usercheck ] ; then
  33.         ln ../usercheck usercheck
  34.     fi
  35.     if [ ! -d "${INEWS_DIR}"/. ]
  36.     then
  37.         ../inst mkdir ${INEWS_DIR} 755 || exit 1
  38.     fi
  39.     echo Installing $2 in $INEWS
  40.     cp $2 $INEWS && ../inst chmod 755 $INEWS
  41.     exit 0
  42.     ;;
  43. esac
  44.  
  45. set -u
  46.  
  47. (
  48. if $NNTP
  49. then
  50.     :
  51. else
  52.     if [ ! -d "$SPOOL"/. ]
  53.     then
  54.         echo Error: News spool directory $SPOOL not found.
  55.     fi
  56.  
  57.     if [ ! -d "$NLIB"/. ]
  58.     then
  59.         echo Error: News lib directory $NLIB not found.
  60.     fi
  61. fi
  62.  
  63. set $INEWS
  64. if [ ! -f "$1" ]
  65. then
  66.     echo ERROR: Inews program $INEWS not found.
  67. fi
  68.  
  69. set $RECMAIL
  70. if [ ! -f "$1" ]
  71. then
  72.     echo ERROR: Mailer program $RECMAIL not found.
  73. fi
  74. ) > ErrorCheck
  75.  
  76. if [ -s ErrorCheck ]
  77. then
  78.     cat ErrorCheck
  79.     echo "Hit return to continue"
  80.     read X
  81. fi
  82. rm -f ErrorCheck
  83.  
  84. LOOP=true
  85. while $LOOP
  86. do
  87.  
  88. if [ $# -ge 1 ]
  89. then
  90.     OPT="$1"
  91.     shift
  92.     if [ $# -eq 0 ]
  93.     then
  94.         LOOP=false
  95.     fi
  96.     PAUSE=false
  97. else
  98.     PAUSE=true
  99.  
  100. cat <<'EOF'
  101.  
  102.  
  103. INSTALLATION
  104.  
  105. 1) User programs (machince dependent, shareable)
  106. 2) auxiliary programs (configuration dependent, shareable)
  107. 3) Documentation (shareable)
  108. 4) Help files (shareable)
  109. 5) Online manual (shareable with 5)
  110. 6) nn-tk program
  111.  
  112. n) nn installation:      1 + 2 + 3 + 4 + 5 
  113. t) nn-tk installation:   1 + 2 + 3 + 4 + 5 + 6
  114. h) Shared installation:  1 + 2
  115. c) Client installation:      2
  116. u) Update after patch
  117. q) Quit
  118.  
  119. EOF
  120. if ./usercheck 0 ; then
  121.     :
  122. else
  123.   echo "Warning: not running as super user"
  124.   echo ""
  125. fi
  126. ${AWK} 'BEGIN{printf "Select option: "}' < /dev/null
  127. read OPT
  128. echo
  129.  
  130. fi
  131.  
  132. case $OPT in
  133.  
  134. s*|a*)
  135.     OPT="master bin aux help online man"
  136.     ;;
  137. u*)
  138.     OPT=""
  139.     if [ -f "$BIN/nn" ]
  140.     then
  141.         OPT="$OPT bin"
  142.     fi
  143.     if [ -f "$LIB/aux" ]
  144.     then
  145.         OPT="$OPT aux"
  146.     fi
  147.     if [ -d "$HELP" ]
  148.     then
  149.         OPT="$OPT help"
  150.     fi
  151.     if [ -f "$DMAN_DIR/nnmaster.$DMAN_SECT" ]
  152.     then
  153.         OPT="$OPT man"
  154.     fi
  155.     if [ -f "$HELP/Manual" ]
  156.     then
  157.         OPT="$OPT online"
  158.     fi
  159.     ;;
  160. n)
  161.     OPT="bin aux help online man"
  162.     ;;
  163. t)
  164.         OPT="nn-tk aux help online man"
  165.         ;;
  166. 1|c)
  167.     OPT=bin
  168.     ;;
  169. h)
  170.     OPT="bin aux"
  171.     ;;
  172. 2)
  173.     OPT="aux"
  174.     ;;
  175. 3)
  176.     OPT="man"
  177.     ;;
  178. 4)
  179.     OPT="help"
  180.     ;;
  181. 5)
  182.     OPT="online"
  183.     ;;
  184. 6)
  185.     OPT="nn-tk"
  186.         ;;
  187. q*|"")
  188.     exit 0
  189.     ;;
  190. *)
  191.     echo "Unrecognized option: $OPT"
  192.     exit 1
  193.     ;;
  194. esac
  195.  
  196. for OP in $OPT
  197. do
  198. case "$OP" in
  199.  
  200. nn-tk)
  201.        echo Installing nn-tk programs in $BIN
  202.        for prog in nn-tk
  203.        do
  204.                ./inst copy 755 $BIN $prog
  205.        done
  206.        ;;
  207. bin)
  208.     echo
  209.     if [ ! -d "$BIN"/. ]
  210.     then
  211.         echo Directory $BIN does not found!
  212.         exit 1
  213.     fi
  214.  
  215.     echo Installing user programs in $BIN
  216.  
  217.     if [ -f $BIN/nn ]
  218.     then
  219.          (
  220.         cd $BIN
  221.         mv nn nn.old
  222.         rm -f $BIN_PROG $BIN_LINK
  223.          )
  224.     fi
  225.  
  226.     for prog in $BIN_PROG
  227.     do
  228.         ./inst copy 755 $BIN $prog
  229.     done
  230.  
  231.     for link in $BIN_LINK
  232.     do
  233.         ln $BIN/nn $BIN/$link
  234.         echo $link linked to nn
  235.     done
  236.  
  237.     if [ -f $BIN/nnacct ] ; then
  238.         chmod 4755 $BIN/nnacct
  239.         echo nnacct is setuid ${OWNER}.
  240.     fi
  241.     ;;
  242.  
  243. aux)
  244.     echo
  245.     ./inst mkdir $LIB 755 || exit 1
  246.  
  247.     echo Installing auxiliary programs in $LIB
  248.  
  249.     for prog in $LIB_PROG
  250.     do
  251.         ./inst copy 755 $LIB $prog
  252.     done
  253.  
  254.        ./inst mkdir $LIB/tcl 755 || exit 1
  255.  
  256.        for prog in tcl/*
  257.        do
  258.                cp $prog $LIB/tcl
  259.                ./inst chmod 755 $prog
  260.        done
  261.  
  262.     ./mkprefix conf > ${LIB}/conf
  263.     grep "^#" config.h |
  264.     sed -e '/_MAN_/d' -e 's/[     ]*\/\*.*$//' >> ${LIB}/conf
  265.     ./inst chmod 644 ${LIB}/conf
  266.     ;;
  267.  
  268. help)
  269.     ./inst mkdir $HELP 755 || exit 1
  270.  
  271.     echo
  272.     echo Installing help files in $HELP
  273.  
  274.  
  275.         for h in `cd help; echo *`
  276.     do
  277.         ./cvt-help < help/$h > $HELP/$h
  278.         ./inst chmod 644 $HELP/$h
  279.         echo $h
  280.     done
  281.     ;;
  282.  
  283. man)
  284.     echo
  285.     echo Installing manuals
  286.  
  287.     PL="`echo $VERSION | sed -e 's/ .*$//'`"
  288.     {
  289.         echo $UMAN_DIR $UMAN_SECT .1
  290.         echo $SMAN_DIR $SMAN_SECT .1m
  291.         echo $DMAN_DIR $DMAN_SECT .8
  292.     } |
  293.     while read DIR SECT SRC
  294.     do
  295.         if [ -d "$DIR"/. ]
  296.         then
  297.             for i in man/*$SRC
  298.             do
  299.                 MAN=`basename ${i} $SRC`
  300.                 NEW=$DIR/${MAN}.$SECT
  301.                 sed -e '/^\.TH /s/6.5/'${PL}'/' $i > $NEW
  302.                 ./inst chmod 644 $NEW
  303.                 echo $MAN in $NEW
  304.             done
  305.         else
  306.             echo $DIR not found or not writeable
  307.         fi
  308.     done
  309.     ;;
  310.  
  311. online)
  312.     ./inst mkdir $HELP 755 || exit 1
  313.  
  314.     MAN=$HELP/Manual
  315.  
  316.     echo
  317.     echo "Formatting online manual $MAN"
  318.     echo ".... (continues in background) ...."
  319.  
  320.     rm -f $MAN
  321.  
  322.     (
  323.     sed     -e 's/\\f[BPI]//g' \
  324.         -e 's/\\-/-/g' -e 's/\\&//g' -e 's/\\e/\\/g' \
  325.         -e '/^\.\\"ta/p' -e '/^\.\\"/d' \
  326.         -e '/^\.nf/d' -e '/^\.fi/d' \
  327.         -e '/^\.if/d' -e '/^\.ta/d' -e '/^\.nr/d' \
  328.         -e '/^\.in/d' -e 's/^\.[BI] //' \
  329.         `grep '^man/' MANIFEST | ${AWK} '{print $1}'` |
  330.     ${AWK} -f format.awk - > $MAN
  331.  
  332.     ./inst chmod 644 $MAN
  333.     ) &
  334.     ;;
  335.  
  336. esac
  337.  
  338. done
  339.  
  340. if [ -f $LOG ]
  341. then
  342.     chmod 666 $LOG
  343. fi
  344.  
  345. if $PAUSE
  346. then
  347. ${AWK} 'BEGIN{printf("\nHit return to continue....")}' < /dev/null
  348. read X
  349. fi
  350. done
  351.